meson: Generate man pages for the installed tools
authorEmmanuele Bassi <ebassi@gnome.org>
Fri, 5 May 2017 10:34:05 +0000 (11:34 +0100)
committerEmmanuele Bassi <ebassi@gnome.org>
Fri, 5 May 2017 10:35:31 +0000 (11:35 +0100)
docs/reference/gtk/meson.build
meson_options.txt

index c762cef4f1b03fa89eafeee15eed01ce95a72da7..4371f01c527ad7501c186986259b0f6eab53a511 100644 (file)
@@ -45,3 +45,50 @@ gnome.gtkdoc('gtk4',
              ],
              html_assets: images,
              install: true)
+
+xsltproc = find_program('xsltproc', required: false)
+if get_option('enable-man-pages') and not xsltproc.found()
+  error('No xsltproc found, but man pages were explicitly enabled')
+endif
+
+if get_option('enable-man-pages') and xsltproc.found()
+  xlstproc_flags = [
+    '--nonet',
+    '--stringparam', 'man.output.quietly', '1',
+    '--stringparam', 'funcsynopsis.style', 'ansi',
+    '--stringparam', 'man.th.extra1.suppress', '1',
+    '--stringparam', 'man.authors.section.enabled', '0',
+    '--stringparam', 'man.copyright.section.enabled', '0',
+  ]
+
+  man_files = [
+    [ 'gtk4-broadwayd', '1', ],
+    [ 'gtk4-builder-tool', '1', ],
+    [ 'gtk4-demo', '1', ],
+    [ 'gtk4-demo-application', '1', ],
+    [ 'gtk4-encode-symbolic-svg', '1', ],
+    [ 'gtk4-icon-browser', '1', ],
+    [ 'gtk4-launch', '1', ],
+    [ 'gtk4-query-immodules', '1', ],
+    [ 'gtk4-query-settings', '1', ],
+    [ 'gtk4-update-icon-cache', '1', ],
+    [ 'gtk4-widget-factory', '1', ],
+  ]
+
+  foreach man: man_files
+    man_name = man.get(0)
+    man_section = man.get(1, '1')
+    custom_target('@0@.@1@'.format(man_name, man_section),
+                  input: '@0@.xml'.format(man_name),
+                  output: '@0@.@1@'.format(man_name, man_section),
+                  command: [
+                    xsltproc,
+                    xlstproc_flags,
+                    '-o', '@OUTPUT@',
+                    'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl',
+                    '@INPUT@',
+                  ],
+                  install: true,
+                  install_dir: join_paths(get_option('mandir'), 'man@0@'.format(man_section)))
+  endforeach
+endif
index 55ea5382dc4331a4d86e13781b04de3112f28263..518cecf535a0b1aa89cadcdf3791ae9051520c75 100644 (file)
@@ -30,3 +30,5 @@ option('with-included-immodules', type: 'string', value : '',
   description : 'Build the specified input methods into gtk (comma-separated list or "all" or "none")')
 option('enable-documentation', type: 'boolean', value: 'false',
   description : 'Build API reference and tools documentation')
+option('enable-man-pages', type: 'boolean', value: 'false',
+  description : 'Build man pages for installed tools')